!(function ($) {
  //
  // 获取cookie
  let objcookie = null;
  if (cookie.get("cookiegoods")) {
    objcookie = JSON.parse(cookie.get("cookiegoods"));
  }
  // 渲染商品列表
  $.ajax({
    url: "http://localhost/js2112/dongfang/php/cartlist.php",
    dataType: "json",
  }).then(function (resData) {
    console.log(resData);
   
    $.each(objcookie, function (key, value) {
      $.each(resData, function (index, obj) {
        if (key.substring(6) == obj.id) {
          let clonebox = $(".goods-item:hidden").clone(true, true); 
          clonebox.attr("sid", obj.id); 
          clonebox.find(".goods-pic img").attr("src", obj.goods_img);
          clonebox.find(".goods-d-info a").first().html(obj.goods_title);
          clonebox.find(".b-price strong").html(obj.goods_price);
          clonebox.find(".quantity-form input").val(value);
          clonebox
            .find(".b-sum strong")
            .html((obj.goods_price * value).toFixed(2)); 
          clonebox.css("display", "block"); 
          $(".item-list").append(clonebox); 
          calc();
        }
      });
    });
  });

  // 2.计算总的商品件数和商品的总价
  function calc() {
    let allcount = 0; 
    let allprice = 0; 
    $(".goods-item:visible").each(function (index, element) {
      //判断复选框是否选中
      if ($(element).find(".cart-checkbox input").prop("checked")) {
        allcount += parseInt($(element).find(".quantity-form input").val());
        allprice += parseFloat($(element).find(".b-sum strong").html());
      }
    });

    $(".amount-sum em").html(allcount); 
    $(".totalprice").html("￥" + allprice); 
  }
  // 3.全选操作
  $(".allsel").on("click", function () {
    $(".goods-item:visible")
      .find(".cart-checkbox input")
      .prop("checked", $(this).prop("checked"));
    $(".allsel").prop("checked", $(this).prop("checked"));
    calc();
  });

  // 事件委托
  
  $(".item-list").on("click", ".cart-checkbox input", function () {
    let len1 = $(".goods-item:visible").find(".cart-checkbox input").length; 
    let len2 = $(".goods-item:visible").find(
      ".cart-checkbox input:checked"
    ).length; 
    if (len1 === len2) {
      $(".allsel").prop("checked", true);
    } else {
      $(".allsel").prop("checked", false);
    }
    calc();
  });
  $(".item-list").on("input", ".quantity-form input", function () {
    let reg = /^[1-9]{1}[0]{1}$/;
    if ($(this).val() > 10) {
      $(this).val(10);
      alert("单笔订单最多只可订购10件");
    } else if (!reg.test($(this).val())) {
      $(this).val(1);
    }
    $(this)
      .parents(".goods-item")
      .find(".b-sum strong")
      .html(allprice($(this)));
    calc();
    optionCookie($(this));
  });

  // 4.商品数量的改变++ --  输入改变
  $(".item-list").on("click", ".quantity-add", function () {
    let num = $(this).prev().val(); 
    num++;

    if (num > 10) {
      $(this).prev().val(10);
      alert("单笔订单最多只可订购10件");
    } else {
      $(this).prev().val(num);
    }
    $(this)
      .parents(".goods-item")
      .find(".b-sum strong")
      .html(allprice($(this)));
    calc();
    optionCookie($(this));
  });

  $(".item-list").on("click", ".quantity-down", function () {
    let num = $(this).next().val();
    num--;
    if (num < 1) {
      $(this).next().val(1);
    } else {
      $(this).next().val(num);
    }
    $(this)
      .parents(".goods-item")
      .find(".b-sum strong")
      .html(allprice($(this)));
    calc();
    optionCookie($(this));
  });

  // 封装计算小计
  function allprice(obj) {
    let single = obj.parents(".goods-item").find(".b-price strong").html();
    let num = obj.parents(".goods-item").find(".quantity-form input").val();
    return (single * num).toFixed(2);
  }

  // 封装存储cookie
  function optionCookie(obj) {
    let objcookie = null;
    if (cookie.get("cookiegoods")) {
      objcookie = JSON.parse(cookie.get("cookiegoods"));
    }
    let sid = obj.parents(".goods-item").attr("sid");
    console.log(obj.parents(".goods-item").find(".quantity-form input").val());
    objcookie["goods" + sid] = obj
      .parents(".goods-item")
      .find(".quantity-form input")
      .val();
    cookie.set("cookiegoods", JSON.stringify(objcookie), 7);
  }

  // 删除商品操作
  // 删除单个商品
  $(".b-action a").on("click", function () {
    if (window.confirm("你确定要删除吗?")) {
      $(this).parents(".goods-item").remove();
      delgoods($(this).parents(".goods-item").attr("sid"));
      calc();
      delgoods();
    }
  });

  // 删除选中的商品
  $(".operation a").on("click", function () {
    if (window.confirm("你确定要删除吗?")) {
      $(".goods-item:visible").each(function (index, element) {
        //判断复选框是否选中
        if ($(element).find(".cart-checkbox input").prop("checked")) {
          $(element).remove();
          delgoods($(element).attr("sid"));
          calc();
        }
      });
    }
  });
  // 封装删除cookie
  function delgoods(sid) {
    let objcookie = null;
    if (cookie.get("cookiegoods")) {
      objcookie = JSON.parse(cookie.get("cookiegoods"));
    }
    delete objcookie["goods" + sid];
    cookie.set("cookiegoods", JSON.stringify(objcookie), 7);
  }
})(jQuery);
